Expert systems are often used to solve problems in fields involving large numbers of interacting rules. An example of expert systems is a medical system specifying the symptoms of a patient with possible diagnoses. A collection of rules used by such systems is often referred to as a rule base or a knowledge base. Domain specialists, such as doctors, working in conjunction with knowledge engineers, typically write a rule base. Development tools employing graphical user interfaces are utilized to code the logic into individual rules, and the resulting rule base is deployed with an inference engine as a service to the expert system. During runtime, data representative of symptoms and lab reading results are entered into input fields of the rule base and an inference session is initiated. The inference session applies rules of the rule base to generate and present a result in output fields.
Typically, a rule base development cycle is a write-once and run-many scenario. However, more advanced and specialized rule bases often evolve from their initial versions. Such proliferation of rule bases entails corresponding complexity in the development tools to maintain the ongoing efforts. In some instances, more than one individual or group may use a particular rule of a rule base and modification of such a rule by one individual may disrupt use of the rule by others. In other instances, a rule of a rule base may be subject to organizational policies or restrictions. In such instances, certain modifications to rules should be limited or prevented entirely.